package com.mmy.service.train.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.mmy.controller.UtilConstants;
import com.mmy.dao.train.TrainBaseRepository;
import com.mmy.domain.sys.TSysUser;
import com.mmy.domain.train.TTrainBase;
import com.mmy.service.ServiceCommon;
import com.mmy.service.train.TrainBaseService;

@Service
public class TrainBaseServiceImpl implements TrainBaseService {

	@Autowired
	TrainBaseRepository trainBaseRepository;
	@Autowired
	ServiceCommon common;

	/**
	 * 函数功能说明：查询全部
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl 修改人hanxl
	 * @date 创建日期 2020.11.18 修改时间2021.03.16
	 */
	public List<TTrainBase> findAll() {
		// TODO Auto-generated method stub
		return trainBaseRepository.findAll();
	}

	/**
	 * 获取最大值
	 * 
	 * @return 返回值说明 最大ID
	 * @author 创建人 dingxd
	 * @date 创建日期 2020.11.17
	 */
	public int getMaxTrainID() {
		// 流水号
		Object objCode = trainBaseRepository.getMaxTrainID();
		int iID = 0;
		if (objCode != null) {
			iID = Integer.parseInt(objCode.toString());
		}
		return iID;
	}

	/**
	 * 新增id
	 * 
	 * @param
	 * @return
	 */
	public void save(int trainID) {
		// TODO Auto-generated method stub
		trainBaseRepository.save(trainID);
	}

	/**
	 * 新增
	 * 
	 * @param
	 * @return
	 */
	public void save(TTrainBase tTrainBase) {
		// TODO Auto-generated method stub
		trainBaseRepository.save(tTrainBase);
		;
	}

	/**
	 * 删除
	 * 
	 * @param
	 * @return
	 */
	public void delTrainBase(List<Integer> lstTrainID) {
		// TODO Auto-generated method stub
		trainBaseRepository.delTrainBase(lstTrainID);
	}

	/**
	 * 通过id查找
	 * 
	 * @param
	 * @return
	 */
	public TTrainBase findByTrainID(int iTrainID) {
		// TODO Auto-generated method stub
		return trainBaseRepository.findByTrainID(iTrainID);
	}

	/**
	 * 通过name查找
	 * 
	 * @param
	 * @return
	 */

	public List<TTrainBase> findByName(String strTrainName) {
		// TODO Auto-generated method stub
		return trainBaseRepository.findByName(strTrainName);
	}

	/**
	 * 通过id查找
	 * 
	 * @param
	 * @return
	 */
	public TTrainBase findByID(int iTrainID) {
		// TODO Auto-generated method stub
		return trainBaseRepository.findByID(iTrainID);
	}

	/**
	 * 后台航班信息管理中显示全部
	 *
	 * @author 创建人 hanxl 整理 修改人hanxl
	 * @date 创建日期 2020.11.19 修改时间2021.02.22
	 */
	public List<TTrainBase> findByTrainName(String strTrainName, int startIndex, int count) {
		if (strTrainName == null)
			strTrainName = "";

		List<TTrainBase> lstTrainBase = trainBaseRepository.findSearchALL(strTrainName, startIndex, count);

		return lstTrainBase;
	}

	/**
	 * 后台航班信息管理中显示全部 分页
	 *
	 * @author 创建人 hanxl 整理 修改人hanxl
	 * @date 创建日期 2020.11.19 修改时间2021.02.22
	 */
	public int queryBaseCount(String strTrainName) {
		if (strTrainName == null)
			strTrainName = "";

		int count = 0;

		count = trainBaseRepository.countALL(strTrainName);

		return count;
	}

	/**
	 * 函数功能说明： 新建航班信息
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人 shangzl 修改人hanxl
	 * @date 创建日期 修改时间2021.03.17
	 */
	public void createTrainBase(TTrainBase tTrainBase, TSysUser sessionSysUser) {
		// 获取最大值
		tTrainBase.setTrainID(common.createBaseCode(UtilConstants.TableName.T_TRAIN_BASE));
		tTrainBase.setCreateDate(new Date());
		tTrainBase.setCreator(sessionSysUser.getUserName());
		tTrainBase.setSpare1(String.valueOf(sessionSysUser.getOrgID()));
		trainBaseRepository.save(tTrainBase.getTrainID());
		trainBaseRepository.save(tTrainBase);
	}

	public void updateTrainBase(TTrainBase tTrainBase, TSysUser sessionSysUser) {
//		 定义一个新的实体类对象 
		TTrainBase dbTrainBase = trainBaseRepository.findByTrainID(tTrainBase.getTrainID());
		dbTrainBase.setTrainName(tTrainBase.getTrainName());
		dbTrainBase.setMemo(tTrainBase.getMemo());
		dbTrainBase.setModifyDate(new Date());
		dbTrainBase.setReviser(sessionSysUser.getUserName());
		trainBaseRepository.save(dbTrainBase);
	}

}
